﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AccesoDatos.Manejador;
using AccesoDatos.Objetos;

namespace Autorizacion_facturas_caja.Vacaciones
{
    public partial class frmVacaciones_Busqueda_Sucursal_Pagos : Form
    {
        Manejador_Vacaciones MV = new Manejador_Vacaciones();
        Manejador_Empleado_Captura MEC = new Manejador_Empleado_Captura();
        objRH obj = new objRH();
        objVacaciones obj1 = new objVacaciones();

        #region FUNCIONES
        //Realiza la busqueda
        private void buscar()
        {
            try
            {
                btnReporte.Visible = true;
                obj.SucId = cmbSucursal.SelectedValue.ToString();
                if (cBTodas.Checked == true) { obj.SucId = "0"; }
                obj1.Programada = cmbProgramada.Text;
                obj1.Fecha_Inicio_Vacaciones = dTPInicio.Value;
                obj1.Fecha_fin_vacaciones = dTPFin.Value;
                obj1.Autorizacion = cBAutorizado.Checked;
                dataGridView1.DataSource = MV.Lista_Prima_Reporte(obj.SucId, obj1.Programada, obj1.Fecha_Inicio_Vacaciones, obj1.Fecha_fin_vacaciones, obj1.Autorizacion);
                propiedadesColumnas();
            }
            catch { MessageBox.Show("SELECCIONE LA PROGRAMACION DEL PAGO"); }
        }

        private void ObtieneDatosCombo()
        {
            //Obtiene los datos de la tabla cat_sucursales al combo de sucursales
            cmbSucursal.DataSource = MEC.ObtieneSucursales();
            cmbSucursal.ValueMember = "SucId";
            cmbSucursal.DisplayMember = "Nombre";
        }

        //coloca propiedades a las columnas
        private void propiedadesColumnas()
        {
            this.dataGridView1.Columns["Id_prima_vacacional"].Visible = false;
            this.dataGridView1.Columns["sucursal"].Visible = false;
            this.dataGridView1.Columns["Fecha_ingreso"].Visible = false;

            //this.dataGridView1.Columns["id_empleado"].Visible = false;

            this.dataGridView1.Columns["Antiguedad"].HeaderText = "ANTIGUEDAD";
            this.dataGridView1.Columns["departamento"].HeaderText = "DEPARTAMENTO";
            this.dataGridView1.Columns["razon_social"].HeaderText = "EMPRESA";
            this.dataGridView1.Columns["Empleado"].HeaderText = "EMPLEADO";
            this.dataGridView1.Columns["Puesto"].HeaderText = "PUESTO";
            this.dataGridView1.Columns["Monto_Prima"].HeaderText = "PRIMA VACACIONAL";
            this.dataGridView1.Columns["Periodo"].HeaderText = "PERIODO";

            if (cBTodas.Checked == true)
            {
                this.dataGridView1.Columns["NEMONICO"].Visible = true;
                this.dataGridView1.Columns["NEMONICO"].HeaderText = "SUCURSAL";
                this.dataGridView1.Columns["NEMONICO"].DisplayIndex = 0;
                this.dataGridView1.Columns["NEMONICO"].Width = 70;
                this.dataGridView1.Columns["NEMONICO"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                // this.dataGridView1.Columns["Nombre_apellidos"].DisplayIndex = 1;
            }
            else
            {
                this.dataGridView1.Columns["NEMONICO"].Visible = false;
                // this.dataGridView1.Columns["Nombre_apellidos"].DisplayIndex = 0;
            }
            this.dataGridView1.Columns["departamento"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["razon_social"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["Empleado"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["Puesto"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["Monto_Prima"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["Periodo"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["Antiguedad"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;

            this.dataGridView1.Columns["Antiguedad"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["razon_social"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["Monto_Prima"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["Periodo"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
        }
        #endregion

        #region BOTONES
        //llama al metodo buscar
        private void btnBuscar_Click(object sender, EventArgs e)
        {
            buscar();
        }

        //genera el reporte
        private void btnReporte_Click(object sender, EventArgs e)
        {
            string programada = "";

            if (cmbProgramada.Text == "SI" && cBAutorizado.Checked == false)
            {
                programada = "PROGRAMADAS SIN AUTORIZAR";
            }
            else if (cmbProgramada.Text == "SI" && cBAutorizado.Checked == true)
            {
                programada = "AUTORIZADAS";
            }
            else if (cmbProgramada.Text == "NO")
            {
                programada = "SIN AUTORIZAR";
            }
            frmVacaciones_Reporte_Sucursales_Pagos form = new frmVacaciones_Reporte_Sucursales_Pagos(obj, obj1, programada);
            form.ShowDialog();

            buscar();
        }

        //cierra la forma
        private void btnRegresar_Click(object sender, EventArgs e)
        {
            Close();
        }


        #endregion

        #region  EVENTOS
        public frmVacaciones_Busqueda_Sucursal_Pagos()
        {
            InitializeComponent();
            btnReporte.Visible = false;
            cBAutorizado.Visible = false;
            dTPInicio.Visible = false;
            dTPFin.Visible = false;
            label3.Visible = false;
            label4.Visible = false;
            ObtieneDatosCombo();
            fecha();
        }

        //coloca la fecha inicio 15 dias antes
        private void fecha()
        {
            DateTime Fecha_Hoy = DateTime.Today;
            Fecha_Hoy = Fecha_Hoy.AddDays(-15);
            dTPInicio.Text = Fecha_Hoy.ToShortDateString();
        }

        //oculta campos dependiento del tipo de programacion
        private void cmbProgramada_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cmbProgramada.Text == "SI")
            {
                cBAutorizado.Visible = true;
                dTPInicio.Visible = true;
                dTPFin.Visible = true;
                label3.Visible = true;
                label4.Visible = true;
            }
            else if (cmbProgramada.Text == "NO")
            {
                cBAutorizado.Visible = false;
                dTPInicio.Visible = false;
                dTPFin.Visible = false;
                label3.Visible = false;
                label4.Visible = false;
            }
        }

        //coloca tips en los botones
        private void frmVacaciones_Busqueda_Sucursal_Pagos_Load(object sender, EventArgs e)
        {
            toolTip1.SetToolTip(btnBuscar, "BUSCAR");
            toolTip1.SetToolTip(btnRegresar, "REGRESAR");
            toolTip1.SetToolTip(btnReporte, "REPORTE");
            toolTip1.SetToolTip(dTPInicio, "FECHA DE PAGO");
            toolTip1.SetToolTip(dTPFin, "FECHA DE PAGO");
        }

        //abilita o desabilita un combo box
        private void cBTodas_CheckedChanged(object sender, EventArgs e)
        {
            if (cBTodas.Checked == true)
            {
                cmbSucursal.Enabled = false;
            }
            else if (cBTodas.Checked == false)
            {
                cmbSucursal.Enabled = true;
            }
        }

        //valida la fecha seleccioanda
        private void dTPInicio_ValueChanged(object sender, EventArgs e)
        {
            if (dTPInicio.Value > dTPFin.Value)
            {
                dTPInicio.Value = DateTime.Today;
                MessageBox.Show("FECHA INCORRECTA", "ALERTA");
            }
        }

        //valida la fecha seleccioanda
        private void dTPFin_ValueChanged(object sender, EventArgs e)
        {
            if (dTPInicio.Value > dTPFin.Value)
            {
                dTPFin.Value = DateTime.Today;
                MessageBox.Show("FECHA INCORRECTA", "ALERTA");
            }
        }
        #endregion

    }
}
